﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DataAccessLayer;
using BussinessLayer;

namespace QLBaoHanh.BaoCao
{
    public partial class frmBaoCaoPhienSaiHan : Form
    {
        public frmBaoCaoPhienSaiHan()
        {
            InitializeComponent();
        }

        private void frmBaoCaoPhienSaiHan_Load(object sender, EventArgs e)
        {
            cboFilter.SelectedIndex = 1;
            lblWarning.Visible = false;
        }

        private void cboFilter_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch(cboFilter.SelectedIndex)
            {
                case 0: // Theo ngay
                    lblToDate.Visible = false;
                    dtpToDate.Visible = false;
                    dtpFromDate.CustomFormat = "dd/MM/yyyy";
                    lblWarning.Visible = false;
                    break;

                case 1: // Theo thang
                    lblToDate.Visible = false;
                    dtpToDate.Visible = false;
                    dtpFromDate.CustomFormat = "MM/yyyy";
                    lblWarning.Visible = false;
                    break;

                case 2: // Tu ngay den ngay
                    lblToDate.Visible = true;
                    dtpToDate.Visible = true;
                    dtpFromDate.CustomFormat = "dd/MM/yyyy";
                    dtpToDate.CustomFormat = "dd/MM/yyyy";
                    lblWarning.Visible = false;
                    break;

                default:
                    break;


            }
        }

        private frmReportViewer<View_TheoDoiTraHang> PrepareReport(bool inIsForPrint)
        {
            NghiepVuBO objNghiepVuBO = new NghiepVuBO();
            IEnumerable<View_TheoDoiTraHang> data;
            DateTime FromDate = dtpFromDate.Value;
            DateTime ToDate = dtpToDate.Value;
            string InDate = "";
            switch (cboFilter.SelectedIndex)
            {
                case 0: // Theo ngay
                    InDate = "Ngày: " + FromDate.ToString("dd/MM/yyyy");
                    //Xem mau in phieu tiep nhan dang duoc chon
                    data = objNghiepVuBO.GetDsPhienKhongDungHanInDay(FromDate);
                    break;
                case 1: // Theo thang
                    InDate = "Tháng: " + FromDate.ToString("MM/yyyy");
                    data = objNghiepVuBO.GetDsPhienKhongDungHanInMonth(FromDate);
                    break;
                case 2: // Tu ngay den ngay
                    InDate = "Từ ngày " + FromDate.ToString("dd/MM/yyyy") + " đến ngày " + ToDate.ToString("dd/MM/yyyy");
                    data = objNghiepVuBO.GetDsPhienTiepNhanBHSCBetween(FromDate, ToDate);
                    break;
                default:
                    data = null;
                    break;
            }
            if (data == null || data.ToList().Count == 0)
            {
                MessageBox.Show("Báo cáo không có dữ liệu", "Danh sách bảo hành, sửa chữa không đúng hạn", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return null;
            }
            Dictionary<string, string> ListParam = new Dictionary<string, string>();
            ListParam.Add("title", "Danh sách bảo hành, sửa chữa không đúng hạn");
            ListParam.Add("indate", InDate);
            frmReportViewer<View_TheoDoiTraHang> frmViewer = new frmReportViewer<View_TheoDoiTraHang>(MyCommon.MyReportType.Report_PhienKhongDungHan, data, inIsForPrint, ListParam);
            return frmViewer;
        }

        private void btnXemReport_Click(object sender, EventArgs e)
        {
            frmReportViewer<View_TheoDoiTraHang> frmViewer = PrepareReport(false);
            if (frmViewer == null)
            {
                return;
            }
            frmViewer.Show();
        }

        private void btnPrintReport_Click(object sender, EventArgs e)
        {
            PrepareReport(true);
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
